package com.sccba.emtbusiness.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sccba.common.annotation.Excel;
import com.sccba.common.annotation.Excels;
import com.sccba.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 生产事件对象 yjcz_product_event_info
 * 
 * @author lichh
 * @date 2024-04-22
 */
public class YjczProductEventInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long pkId;

    /** 生产事件标题 */
    private String eventTitle;

    /** 生产事件描述 */
    @Excel(name = "描述", sort = 5)
    private String eventDesc;

    /** 生产事件单号 */
    @Excel(name = "事件单", sort = 12)
    private String eventReceiptCode;

    /** 生产事件发生时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 0)
    private Date eventHappenDt;

    /** 发版id（关联yjcz_fb_info） */
    private Long eventFbId;

    private YjczFbInfo fbInfo;

    /** 应用系统id（关联yjcz_channel_info） */
    private Long eventChannelId;

    @Excel(name = "系统", targetAttr = "channelName", sort = 2)
    private YjczChannelInfo channelInfo;

    /** 适用应急场景id（关联yjcz_emergency_scene) */
    private Long eventSceneId;

    private YjczEmergencyScene scene;

    /** 生产事件处置状态（对应字典表状态） */
    private Integer eventState;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    @Excels({
            @Excel(name = "发现阶段", targetAttr = "detailEventDiscoveryStage", dictType = "event_discovery_stage", sort = 1),
            @Excel(name = "发现方式", targetAttr = "detailEventDiscoveryWay", dictType = "event_discovery_way", sort = 3),
            @Excel(name = "反馈行", targetAttr = "detailEventFeedBank", sort = 4),
            @Excel(name = "原因", targetAttr = "detailEventReason", sort = 6),
            @Excel(name = "影响", targetAttr = "detailEventEffective", sort = 7),
            @Excel(name = "处理措施", targetAttr = "detailEventTreatment", sort = 9),
            @Excel(name = "CQ-id", targetAttr = "detailLinkCq", sort = 10),
            @Excel(name = "处理状态", targetAttr = "detailEventSloveState", dictType = "product_event_slove_state", sort = 8),
            @Excel(name = "问题", targetAttr = "detailPbmCode", sort = 11),
            @Excel(name = "对应发版CQ涉及部门", targetAttr = "detailAboutDept", sort = 13),
            @Excel(name = "表象系统所属部门", targetAttr = "detailSurfaceDept", sort = 14),
            @Excel(name = "备注", targetAttr = "detailRemark", sort = 15)
    })
    private YjczProductEventDetail eventDetail;

    private List<YjczHandleTimeLine> timeLineList;

    public void setPkId(Long pkId) 
    {
        this.pkId = pkId;
    }

    public Long getPkId() 
    {
        return pkId;
    }
    public void setEventTitle(String eventTitle) 
    {
        this.eventTitle = eventTitle;
    }

    public String getEventTitle() 
    {
        return eventTitle;
    }
    public void setEventDesc(String eventDesc) 
    {
        this.eventDesc = eventDesc;
    }

    public String getEventDesc() 
    {
        return eventDesc;
    }
    public void setEventReceiptCode(String eventReceiptCode) 
    {
        this.eventReceiptCode = eventReceiptCode;
    }

    public String getEventReceiptCode() 
    {
        return eventReceiptCode;
    }
    public void setEventHappenDt(Date eventHappenDt) 
    {
        this.eventHappenDt = eventHappenDt;
    }

    public Date getEventHappenDt() 
    {
        return eventHappenDt;
    }
    public void setEventFbId(Long eventFbId) 
    {
        this.eventFbId = eventFbId;
    }

    public Long getEventFbId() 
    {
        return eventFbId;
    }
    public void setEventChannelId(Long eventChannelId) 
    {
        this.eventChannelId = eventChannelId;
    }

    public Long getEventChannelId() 
    {
        return eventChannelId;
    }
    public void setEventSceneId(Long eventSceneId) 
    {
        this.eventSceneId = eventSceneId;
    }

    public Long getEventSceneId() 
    {
        return eventSceneId;
    }
    public void setEventState(Integer eventState) 
    {
        this.eventState = eventState;
    }

    public Integer getEventState() 
    {
        return eventState;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }


    public YjczFbInfo getFbInfo() {
        return fbInfo;
    }

    public void setFbInfo(YjczFbInfo fbInfo) {
        this.fbInfo = fbInfo;
    }

    public YjczChannelInfo getChannelInfo() {
        return channelInfo;
    }

    public void setChannelInfo(YjczChannelInfo channelInfo) {
        this.channelInfo = channelInfo;
    }

    public YjczEmergencyScene getScene() {
        return scene;
    }

    public void setScene(YjczEmergencyScene scene) {
        this.scene = scene;
    }

    public YjczProductEventDetail getEventDetail() {
        return eventDetail;
    }

    public void setEventDetail(YjczProductEventDetail eventDetail) {
        this.eventDetail = eventDetail;
    }

    public List<YjczHandleTimeLine> getTimeLineList() {
        return timeLineList;
    }

    public void setTimeLineList(List<YjczHandleTimeLine> timeLineList) {
        this.timeLineList = timeLineList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("pkId", getPkId())
            .append("eventTitle", getEventTitle())
            .append("eventDesc", getEventDesc())
            .append("eventReceiptCode", getEventReceiptCode())
            .append("eventHappenDt", getEventHappenDt())
            .append("eventFbId", getEventFbId())
            .append("eventChannelId", getEventChannelId())
            .append("eventSceneId", getEventSceneId())
            .append("eventState", getEventState())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
